var originalEmail = '';
function handleEdit(button) {
    var userId = button.getAttribute('data-user-id');
    var username = button.getAttribute('data-username');
    var email = button.getAttribute('data-email');
    // 保存原始邮箱值
    originalEmail = email;
    // 将用户信息填充到编辑表单中
    document.getElementById('edit-id').value = userId;
    document.getElementById('edit-username').value = username;
    document.getElementById('edit-email').value = email;
    // 显示编辑模态框
    var editModal = new bootstrap.Modal(document.getElementById('editModal'));
    editModal.show();
}

function saveChanges() {
    var userId = document.getElementById('edit-id').value;
    var emailInput = document.getElementById('edit-email');
    var updatedEmail = emailInput.value;
    /*邮箱验证*/
    if (!emailInput.checkValidity()) {
        emailInput.classList.add('is-invalid');
        return;
    }
    emailInput.classList.remove('is-invalid');/*邮箱格式正确移除已存在is-invalid的类名*/
    if (updatedEmail === originalEmail) {
        alert("邮箱未更改")
        return;
    }
    var userData = {
        id: userId,
        email: updatedEmail
    };
    axios.post('http://localhost:8080/update', userData, {
        headers: {
            'Content-Type': 'application/json'
        }
    })
        .then(response => {
            console.log(response.data);
            if (response.status === 200) {
                alert('更新邮箱成功');
                location.reload(); // 刷新页面以反映更改
            } else if (response.status === 422) {
                alert('不可为空！！');
            }
        })
        .catch(err => {
            console.error('Error:', err);
            alert('无法更新用户');
        });
}

/*--------删除---------*/
var userToDelete = null;
function handleDelete(button) {
    var userName = button.getAttribute('data-username');
    var name = button.getAttribute('data-name');
    if (userName === name) {
        alert("无法删除自己哦");
        return;
    }
    // 保存待删除的用户信息
    userToDelete = {
        username: userName
    };
    // 显示删除确认模态框
    var deleteModal = new bootstrap.Modal(document.getElementById('deleteConfirmModal'));
    deleteModal.show();
}

document.getElementById('confirmDeleteButton').addEventListener('click', function () {
    if (userToDelete) { // 检查是否有待删除的用户
        if (confirm("确定删除用户: " + userToDelete.username + "?")) {
            axios.post('http://localhost:8080/delete', userToDelete) // 发送删除请求
                .then(result => {
                    alert('删除用户成功。'); // 处理成功响应
                    location.reload(); // 刷新页面以反映更改
                })
                .catch(err => {
                    console.error('Error:', err); // 处理错误
                    alert('无法删除用户。');
                });
        }
    }
});

/*书籍*/
function redirectToBooks() {
    axios.post('http://localhost:8080/book', {})
        .then(result => {
            console.log(result.data);
            // 这里可以根据后端返回的数据执行跳转操作或其他逻辑
            sessionStorage.clear();
            window.location.href = '/book';
        })
        .catch(err => {
            console.error('Error:', err);
            alert('无法跳转到书籍页面。');
        });
}

/*修改密码*/
function redirectToPassword() {
    axios.post('http://localhost:8080/changePassword', {})
        .then(result => {
            console.log(result.data);
            // 这里可以根据后端返回的数据执行跳转操作或其他逻辑
            sessionStorage.clear();
            window.location.href = '/changePassword';

        })
        .catch(err => {
            console.error('Error:', err);
            alert('无法跳转到修改密码页面。');
        });
}
window.onload = function () {
    // 检查 window.history 对象是否存在，以及 pushState 方法是否可用
    if (window.history && window.history.pushState) {
        // 使用 pushState 方法创建一个新的历史记录条目。此条目与当前页面 URL 相同
        window.history.pushState(null, null, document.URL);
        // 监听 'popstate' 事件。当用户点击浏览器的“后退”按钮时，会触发此事件
        window.addEventListener('popstate', function () {
            // 当 'popstate' 事件触发时，再次使用 pushState 方法创建一个新的历史记录条目，防止用户返回到前一个页面
            window.history.pushState(null, null, document.URL);
        });
    }
};

function logout() {
    axios.post('http://localhost:8080/logout')
        .then(response => {
            if (response.data.redirect) {
                location.reload(); // 刷新页面以反映更改
                window.location.href = response.data.redirect; // 重定向到指定页面
            }
        }).catch(error => {
        console.error('Error:', error);
    });
}